package com.smasher.decoration

import android.content.Context
import android.util.DisplayMetrics

/**
 * @author moyu
 */
internal object DensityUtil {
    /**
     * 根据手机的分辨率dip --> px
     *
     * @param dpValue dpValue
     */
    @JvmSynthetic
    internal fun dip2px(context: Context, dpValue: Float): Int {
        val scale = getDisplayMetricsByResources(context).density
        return (dpValue * scale + 0.5f).toInt()
    }


    /**
     * 根据手机的分辨率 px --> dp
     *
     * @param pxValue pxValue
     */
    @JvmSynthetic
    internal fun px2dip(context: Context, pxValue: Float): Int {
        val scale = getDisplayMetricsByResources(context).density
        return (pxValue / scale + 0.5f).toInt()
    }

    /**
     * 根据手机的分辨率 sp --> px
     *
     * @param sp sp
     */
    @JvmSynthetic
    internal fun sp2px(context: Context, sp: Float): Float {
        val scale = getDisplayMetricsByResources(context).scaledDensity
        return sp * scale
    }


    private fun getDisplayMetricsByResources(context: Context): DisplayMetrics {
        return context.resources.displayMetrics
    }
}
